#pragma once

#include <nxos.h>
#include <wm/surface.h>

typedef struct
{
    NX_Surface surface;
    NX_Addr phyBaseAddr;
} WM_Display;

NX_Error WM_DisplayInit(void);
NX_Error WM_DisplayExit(void);
NX_Error WM_DisplayPresent(NX_Surface * surface, NX_Region *region);
NX_U32 WM_DisplayGetWidth(void);
NX_U32 WM_DisplayGetHeight(void);
NX_Surface *WM_DisplayGetSurface(void);
NX_Addr WM_DisplayGetPhyBase(void);
void WM_DisplaySetPhyBase(NX_Addr addr);

NX_Error WM_DisplayFrameBufferInit(void);
NX_Error WM_DisplayFrameBufferExit(void);
NX_Error WM_DisplayFrameBufferPresent(void);
